package wc.Service;

import wc.domain.Admin;
import wc.domain.History;
import wc.domain.User;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * @ClassName:AdminService
 * @Author: 鹿建文
 * @Date: 2022/4/6  - 10:45
 * @Describe:
 */
public interface AdminService {
    /**
     * 用户登录
     * 先根据account查询出Admin信息，如果存在，查询出salt值，然后用salt+登录请求密码，采用MD5加密，
     * 再和数据库中保存的密码比较，相同成功，不同失败
     *
     * @param account
     * @param password
     * @return
     */
    Admin login(String account, String password) throws SQLException;

    /**
     * 修改密码
     *
     * @param id
     * @param newpassword oldpassword
     * @return
     * @throws SQLException
     */
    boolean updatePassword(Integer id, String oldpassword, String newpassword) throws SQLException;

    /**
     * 增加用户
     *
     * @param user
     * @return
     */
    boolean addUser(User user) throws SQLException;

    /**
     * 查询用户详细信息
     *
     * @return
     */
    List<User> selectAllUsersDetailed() throws SQLException;

    /**
     * 查询用户列表
     *
     * @return
     */
    HashMap<Integer, List> selectAllUsersList() throws SQLException;

    /**
     * 查询指定用户积分
     *
     * @param name
     * @return
     */
    HashMap<Integer, List> selectUserCredits(String name) throws SQLException;

    /**
     * 查询指定用户积分记录
     *
     * @param userId
     * @return
     */
    ArrayList<History> selectUserCreditsHistorye(Integer userId) throws SQLException;
}
